package com.yuanfeng.base.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuanfeng.base.dto.WebGoodsCatQueryDTO;
import com.yuanfeng.base.vo.GoodsIdsQueryListVO;
import com.yuanfeng.base.vo.GoodsIdsQueryVO;
import com.yuanfeng.base.vo.WebShopListQueryResultVO;
import com.yuanfeng.base.vo.index.GoodCatsResultVO;
import com.yuanfeng.base.vo.index.PcConfigGoodsVO;
import com.yuanfeng.base.vo.index.PcConfigShopVO;
import com.yuanfeng.base.vo.index.WapHallGoodsQueryResultVO;
import com.yuanfeng.commoms.dto.goods.WebGoodsListQueryDTO;
import com.yuanfeng.commoms.dto.shop.WebShopListQueryDTO;
import com.yuanfeng.commoms.vo.goods.GdsListQueryResultVO;
import com.yuanfeng.commoms.vo.goods.GoodsCatVO;
import com.yuanfeng.commoms.vo.goods.GoodsIdsVO;
import com.yuanfeng.commoms.vo.goods.SecordNameListVO;
import com.yuanfeng.commoms.vo.goodscat.WebCatMenuVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName WebIndexMapper
 * @Description pc首页装修
 * @Author cyp
 * @Date 2023/5/24 9:19
 * @Version 1.0
 */
@Mapper
public interface WebIndexMapper {

    /**
     * 查询商品
     *
     * @param goodIds
     * @return
     */
    List<GoodsIdsQueryListVO> selectByGoodIds(@Param("goodIds") List<Integer> goodIds);
    /**
     * 查询商品名
     * @param commonId
     * @return
     */
    String selectCommonNameId(Integer commonId);

    /**
     * 查询店铺名称
     * @param shopId
     * @return
     */
    String selectByShopNameId(Integer shopId);

    /**
     * 查询分类名称
     * @param catId
     * @return
     */
    String selectByCatNameString(Integer catId);

    /**
     * 查询所有子分类
     * @return
     */
    List<WebCatMenuVO> selectAllCat2();
    /**
     * 查询商品信息
     * @param goodsId
     * @return
     */
    GoodsIdsVO newSelectWebFloorMobConfig(@Param("goodsId")Integer goodsId);

    /**
     * 查询一级分类下的商品
     * @param catQueryParam
     * @return
     */
    List<GoodsCatVO> selectByParam(@Param("param") WebGoodsCatQueryDTO catQueryParam);

    /**
     * 查询分类
     * @param catId
     * @return
     */
    List<SecordNameListVO> selectByCatParentId(@Param("catParentId")Integer catId);
    /**
     * 根据goodId 查询商品信息
     * @param goodsId
     * @return
     */
    GoodsIdsQueryVO selectGoodsIdList(@Param("goodsId")Integer goodsId);

    /**
     * 查询商品 店铺信息
     * @param commonId
     * @return
     */
    PcConfigGoodsVO pcConfigGoods(@Param("id")Integer commonId);

    /**
     * 查询店铺信息
     * @param id
     * @return
     */
    PcConfigShopVO pcConfigShop(@Param("id")Integer id);

    /**
     * 查询分类信息
     * @param catIdList
     * @param goodsType
     * @return
     */
    List<GoodsIdsQueryVO> selectByCatIds(@Param("catIdList") List<Integer> catIdList,@Param("goodsType") Integer goodsType);

    /**
     * 查询商品信息
     * @param goodsIds
     * @return
     */
    List<GoodsIdsQueryVO> selectGoodsByGoodIds(@Param("goodIds")List<Integer> goodsIds);

    /**
     * 根据商品名称查询分类
     * @param commonName
     * @return
     */
    Integer selectCatIdByCommonName(@Param("commonName")String commonName);

    /**
     * 查询商品信息
     * @param param
     * @return
     */
    List<GoodsIdsQueryVO> selectRecGoods(@Param("param")WebGoodsListQueryDTO param);

    /**
     * 查询商品信息
     * @param goodsIds
     * @return
     */
    List<WapHallGoodsQueryResultVO> selectByGoodsIds(@Param("goodsIds")List<Integer> goodsIds);

    /**
     * 供应商商品查询
     * @param goodsIdList2
     * @return
     */
    List<GoodsIdsQueryListVO> selectByGoodIds2(@Param("goodIds")List<Integer> goodsIdList2);

    /**
     * 供应商商品经销查询
     * @param goodIds
     * @return
     */
    List<GoodsIdsVO> selectDelayByGoodIds(@Param("goodIds") List<Integer> goodIds);

    /**
     * 查询供应商商品列表
     * @param page
     * @param param
     * @return
     */
    IPage<GdsListQueryResultVO> queryBrandList(IPage<GdsListQueryResultVO> page, @Param("param")WebGoodsListQueryDTO param);

    /**
     * 供应商店铺列表
     * @param page
     * @param param
     * @return
     */
    IPage<WebShopListQueryResultVO> selectShopListFilter(IPage<WebShopListQueryResultVO> page, @Param("param")WebShopListQueryDTO param);

    /**
     * 查询供应商商品
     * @param shopId
     * @return
     */
    List<GdsListQueryResultVO> selectSupplierGoodsByShopId(Integer shopId);


    List<GoodsCatVO> selectByShopId1(@Param("catId")Integer catId, @Param("shopId")Integer shopId);

    List<GoodCatsResultVO> selectByShopId2(@Param("catId")Integer catId, @Param("shopId")Integer shopId);
}
